|
|
Книги-onlineCh 11.htm назад | содержание | вперед Перемещение и переключение изображений Перемещая и переключая изображения, можно организовать несложную анимацию. Чаще всего этот способ используется для анимации процессов ожидания или расчета, "оживления" изображений в формах приложения. Для изучения перемещения и переключения изображений создадим небольшой проект MyGraphicsDay. Выполните следующие действия: 1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE. 2. Присвойте проекту имя MyGraphicsDay. Откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда будет называться MyGraphicsDay Properties. 3. Присвойте форме проекта имя FormForGraphics. В свойство caption формы введите заголовок Форма для работы с графикой. 4. Добавьте в форму кнопку управления типа commandButton, дважды щелкнув мышью кнопку ComniandBiitton на панели элементов управления. Назовите эту кнопку cbRun и присвойте свойству Caption значение Старт. Созданная в форме кнопка cbRun будет служить для запуска действий, выполняемых приложением MyGraphicsDay по событию click этой кнопки. 5. Добавьте в форму FomForGraphics еще одну такую же кнопку и назовите ее cbStop. Присвойте свойству caption значение Стоп. Эта кнопка будет служить для останова анимации и возврата приложения в исходное состояние. 6. При анимации, даже самой простой, требуется организовать изменение объектов во времени. Для задания отсчета интервалов времени служит объект типа таймер Timer. Добавьте его в форму с помощью кнопки Timer на панели элементов управления. Этот объект будет вырабатывать управляющие сообщения для анимации. Используя свойство Name, присвойте таймеру имя tmrGraphicsTimer. При запуске приложения таймер невидим, поэтому о свойстве visible для этого объекта можно не задумываться. Свойство таймера Enabled установите в состояние False, а свойству interval присвойте значение 200. Замечание Более подробную информацию об объекте Timer вы можете найти в главе 8. Здесь лишь кратко напомним следующее. Таймер отсчитывает интервалы времени в миллисекундах, отрабатывая событие Timer. При этом минимальный интервал отсчета времени составляет 1, а максимальный — 65 535 миллисе кунд, то есть максимально таймер может работать с интервалом чуть больше 1 минуты. Основные свойства объекта Timer — interval и Enabled. Свойство Interval определяет интервал отработки события Timer, свойство Enabled запускает или останавливает таймер. Если Enabled установлено в состояние True, таймер начинает отрабатывать событие Timer, если в состояние False — таймер находится в состоянии ожидания. При этом таймер с установленным при проектировании свойством Enabled в состояние True запускается сразу же после загрузки формы, в которой он находится. 7. Добавьте в форму элемент управления image. Назовите его imgSunMoon. 8. Добавьте в форму массив элементов управления типа Picture, состоящий из двух элементов. Для создания массива воспользуйтесь любым удобным для вас способом. Например, разместите в форме объект picture, дважды щелкнув мышью кнопку PictureBox на панели элементов управления. Затем скопируйте объект и вставьте его копию в форму. Объектам массива присвойте имя picSunMoon. В элемент массива, индекс которого равен 0 (свойство index), введите изображение солнца. В элемент массива, индекс которого равен 1, введите изображение месяца. Свойство visible для элементов массива установите в состояние False. Полученное приложение показано на рис. 11.8.
Рис. 11.8. Вид приложения MyGraphicsDay 9. Откройте окно редактора и разместите в нем указанный ниже код: Dim xAdd As Integer Dim yAdd As Integer Dim figSunMoon As Integer Private Sub Form Load() ' "Смена дня и ночи" xAdd = 100 yAdd = -100 figSunMoon = 1 xScaleSunMoon = ImgSunMoon.Width FormForGraphics.Caption = "Смена дня и ночи" End Sub Private Sub cbRun_Click() tmrGraphicsTimer.Enabled = True xAdd = 100 yAdd = -100 figSunMoon = 1 ImgSunMoon.Picture = PicSunMoon(0).Picture End Sub Private Sub cbStop_Click() tmrGraphicsTimer.Enabled = False ImgSunMoon.Left = xScaleSunMoon / 2 ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500 ImgSunMoon.Picture = PicSunMoon(0).Picture End Sub Private Sub tmrGraphicsTimer Timer() ImgSunMoon.Left = ImgSunMoon.Left + xAdd ImgSunMoon.Top = ImgSunMoon.Top + yAdd If ImgSunMoon.Left > FormForGraphics.ScaleWidth / 2 — xScaleSunMoon / 2 And figSunMoon = 1 Then yAdd = 100 End If If ImgSunMoon.Left < FormForGraphics.ScaleWidth / 2 -xScaleSunMoon / 2 And figSunMoon = 0 Then yAdd = 100 End If If ImgSunMoon.Left > FormForGraphics.ScaleWidth Then yAdd = -100 xAdd = -100 figSunMoon = 0 ImgSunMoon.Picture = PicSunMoon(1).Picture ImgSunMoon.Left = FormForGraphics.ScaleWidth — 500 ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500 End If If ImgSunMoon.Left < xScaleSunMoon / 2 And figSunMoon = 0 Then ImgSunMoon.Left = xScaleSunMoon / 2 ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500 tmrGraphicsTimer.Enabled = False End If End Sub 10. Запустите приложение на выполнение. При нажатии кнопки Старт объект, напоминающий солнце, перемещается по форме и при достижении правого нижнего угла меняет изображение, после чего возвращается в исходную точку (рис. 11.9). Нажатие кнопки Стоп переводит приложение в исходное состояние.
Рис. 11.9. Вид приложения MyGraphicsDay при запуске
назад | содержание | вперед Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском . книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать |
|